/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"D476D3DC-AAD4-4B5E-A245-5B15EBD88C3B",variableType:4}
 */
var es_nro_manual = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"7D47079E-B954-43AA-BBE7-C9A3830AF114",variableType:4}
 */
var es_preview = 0;

/**
 * @properties={typeid:24,uuid:"848DA76D-DB31-4906-AFEC-71016A45CFD1"}
 * @AllowToRunInFind
 */
function confirmar()
{
	if (cliente_id==null){
		globals.DIALOGS.showWarningDialog('Aviso','Debe informar Cliente','OK');
		return false;
	}
	if (cod_mov_cc==null){
		globals.DIALOGS.showWarningDialog('Aviso','Debe informar tipo de nota','OK');
		return false;
	}
	if (subtotal1<=0){
		globals.DIALOGS.showWarningDialog('Aviso','Total de la nota no puede ser cero ','OK');
		return false;
	}
	if (cond_pago_id==null){
		globals.DIALOGS.showWarningDialog('Aviso','Debe informar Condicion de Pago','OK');
		return false;
	}
	if (fecha_vencimiento==null){
		globals.DIALOGS.showWarningDialog('Aviso','Debe informar Fecha Vencimiento','OK');
		return false;
	}
	if (globals.zparam_usa_proyecto == 1 && proyecto_id == null){
		globals.DIALOGS.showWarningDialog('Aviso','Debe informar el proyecto','OK');
		return false;
	}
	
	//llenar todos los campos de cabecera que no se piden 
	tipo_doc=fac_cabecera_to_tab_mov_cl.tipo_mov
    if (es_nro_manual==0)
    {  //no es manual
	// buscar numero de nota de la sucursal/letra/tipo docum que corresponde
	var fs_nro_fc = databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'numeracion_cl')
	fs_nro_fc.find()
	fs_nro_fc.sucursal=sucursal
	fs_nro_fc.letra=letra
	/////////////debe moverse aqui para usar la sig. relacion//////////////////////////////////////////
	tipo_doc=fac_cabecera_to_tab_mov_cl.tipo_mov
	fs_nro_fc.cod_comprobante=fac_cabecera_to_tipo_doc.cod_doc_asociado
	var found=fs_nro_fc.search()
	if (found != 1)
     {
	   globals.DIALOGS.showWarningDialog('Aviso','Sucursal o Letra o Tipo de comprobante incorrectos','OK');
	   return false;  // 01/10/2010
     }
     else
     {	
	  fs_nro_fc.setSelectedIndex(1)
	  /*// no cambiar hasta comprobar que no existe
		fs_nro_fc.ultimo_numero = fs_nro_fc.ultimo_numero + 1 
		nro_factura=fs_nro_fc.ultimo_numero // poner nro factura en renglon  */
	  var nro_aux= fs_nro_fc.ultimo_numero + 1
     }
	}
    else // es manual  // 01/10/2010
    {
    	nro_aux=nro_factura;
    }	
	// validar si existe en fac_cabecera  04/10/2010
	globals.fac_cabecera_duplicacion(letra,sucursal,nro_aux, tipo_doc)
	if (globals.fact_filas!=0)  // si es cero, la factura no existe
		{ // ya existe , lo rechaza
		globals.DIALOGS.showWarningDialog('Aviso','Ya existe ' + fac_cabecera_to_tipo_doc.descripcion + ' ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_aux,'00000000'),'OK');
		return false;
		}
	
    if (es_nro_manual==0)  // 01/10/2010  corrido aqui
    {  //no es manual  y no existe, asigna sig. numero
		fs_nro_fc.ultimo_numero = fs_nro_fc.ultimo_numero + 1
		nro_factura=fs_nro_fc.ultimo_numero // poner nro factura en renglon
    } 
	    
	tipo_doc=fac_cabecera_to_tab_mov_cl.tipo_mov // movido mas arriba
	  
	/////////////////////////////////////////////////////
	// armar ctacte   
    // desde la relacion cabecera-cliente y cliente-ctect  
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.newRecord()
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.cliente_id	= cliente_id
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.fecha_mov	= fecha
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.nro_factura	= nro_factura
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.cod_mov		= cod_mov_cc  
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.sucursal		= sucursal
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.letra		= letra
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.fecha_vto	= fecha_vencimiento
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.saldo		= total
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.provincia_id	= fac_cabecera_to_clientes.provincia_id
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.importe		= total
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.neto			= subtotal2 
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.iva			= iva1_imp   
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.iva_porc		= iva1_porc
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.cond_pago_id	= cond_pago_id
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.tipo_doc		= tipo_doc
	fac_cabecera_to_clientes.clientes_to_ctacte_cl.proyecto_id 	= proyecto_id
	
	// generar un renglon cuyo texto sea la "descripcion" de la nota
	fac_cabecera_to_fac_detalle.newRecord();
	fac_cabecera_to_fac_detalle.producto_id=999999
	fac_cabecera_to_fac_detalle.precio_unitario=null
	fac_cabecera_to_fac_detalle.cantidad_dec=null
	fac_cabecera_to_fac_detalle.total_renglon=null
	fac_cabecera_to_fac_detalle.texto=fac_cabecera_to_tab_mov_cl.descripcion
	
	// ver que se hace con estadisticas
	var estado=databaseManager.saveData()
	if (estado==true)
	{
		globals.DIALOGS.showInfoDialog('Generador de Notas de Credito y Debito',  fac_cabecera_to_tipo_doc.descripcion + ' ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_factura,'00000000') +  '\nGenerada correctamente', "OK" )
		Iniciar() 
	}
	else
	{
		globals.DIALOGS.showInfoDialog('Generador de Notas de Credito y Debito',  'Nota No fue generada ',  "OK")
	}
return true
}

/**
 * @properties={typeid:24,uuid:"14E6B945-E1D5-4CDE-8DC3-F4405E8E8A56"}
 */
function nueva_factura()
{
controller.newRecord()
}

/**
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"DBAF2D34-75BE-4598-AE33-ED294D44DEE1"}
 */
function ver_cond_iva_cliente() 
{
	letra=fac_cabecera_to_clientes.clientes_to_relacion_iva_letra.rel_iva_letra
	ver_existe_ctacte();
	return true
}

/**
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"3093A531-0435-4D8A-B94B-5BE25FF46EAF"}
 */
function calculo_vto() 
{   
	if (fecha != null)
	{
		fecha_vencimiento=fecha		
		fecha_vencimiento=fecha_vencimiento.setDate (fecha.getDate() + fac_cabecera_to_cond_pago.dias);
		elements.texto.requestFocus()
	}
	else
	{
		globals.DIALOGS.showWarningDialog('Aviso','Fecha del comprobante no informada','OK');
		elements.fecha.requestFocus()
	}
	return true
}

/**
 * @properties={typeid:24,uuid:"C71D7C66-C5DD-47C6-90FF-434B6E662FDE"}
 */
function Iniciar() 
{
	databaseManager.setAutoSave(false);
	forms.notas_gral.controller.newRecord();
	fecha = new Date();
	iva1_imp=globals.gIva;
	descuento=null
	es_nro_manual=0;
	elements.nro_factura.editable=false;
	es_preview = 0;
}

/**
 *
 * @properties={typeid:24,uuid:"8F95EDEF-5708-4140-A2F2-1E747A6987CE"}
 */
function calculo_total() 
{
	// ver % de iva de donde tomar ///////////////////////////////////
	iva1_porc= globals.gPorc_iva_emisor
	
	// anulado por ahora=no se hace descuento- tambien se quitan los campos del form	
	//subtotal2 = subtotal1 - (subtotal1 * descuento / 100)
	subtotal2 = subtotal1    // redondeo 02/06/2010
	iva1_imp = subtotal2 * iva1_porc / 100;
	total = subtotal2 + iva1_imp
}

/**
 * @returns {Boolean} allow hide
 *
 * @properties={typeid:24,uuid:"C2BD035C-BC65-4479-BCC3-ACDE4337B056"}
 */
function salir_fac() 
{  // si salia del facturador sin haber confirmado, luego en el form que se usaba a 
   // continuacion no grababa los resistros que se daban de alta 19/11/2009
	if (es_preview== 0)
	{
	    var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea salir sin confirmar?' ,  'Si', 'No')
		if (resp == 'Si')
		{
			databaseManager.revertEditedRecords()
			databaseManager.setAutoSave(true)
		}
	}
	return true
}

/**
 * @properties={typeid:24,uuid:"05F1874C-3791-4382-9851-B32746A08E27"}
 */
function Cancelar() 
{
	databaseManager.revertEditedRecords()
	Iniciar();
}

/**
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"BB44833D-3F22-4C39-8F43-B9C515E555CD"}
 */
function ver_es_nro_manual() 
{
	if (es_nro_manual==1)
	{
		elements.nro_factura.requestFocus();
		elements.nro_factura.editable=true	
	}
	else
	{
		elements.nro_factura.editable=false;
		nro_factura=null;
	}
	return true
}

/**
 *
 * @properties={typeid:24,uuid:"020BD97F-C189-4099-9D2C-9B365F2FB896"}
 */
function ver_existe_ctacte() 
{	
	if (es_nro_manual==1)
	{
	// validar en fac_cabecera  01/10/2010
	globals.fac_cabecera_duplicacion(letra,sucursal,nro_factura, tipo_doc)
	if (globals.fact_filas!=0)  // si es cero, la factura no existe
	{
		globals.DIALOGS.showWarningDialog('Aviso','Ya existe comprobante ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_factura,'00000000'),'OK');
	}
	}
}
